"""
1.定义空元组，可以通过()或者tuple()方式来定义
"""
"""
元组的使用注意事项和细节
"""
tuple_a = ()
tuple_b = tuple()
print(f"tuple_a 内容是{tuple_a} , 类型是{type(tuple_a)}")
print(f"tuple_b 内容是{tuple_b} , 类型是{type(tuple_b)}")

#元组的元素可以有多个,而且数据类型没有限制(甚至可以嵌套元组),允许有重复的元素,并且是有序的
tuple_c = (100 , "jack" , 4.5 , True , "jack")
print(tuple_c)

#嵌套元组
tuple_d = (100 , "tom" , ("天龙八部" , "笑傲江湖" , 300))
print(f"{tuple_d}")

#3.元组的索引/下标是从0开始的

#4.元组的索引必须在指定的范围内使用
tuple_e = (1 , 2.1 , '韩顺平教育')
# print(tuple_e[3])

#索引越界 TypeError:'tuple' object does not support item assignment
#元组是不可变序列
# tuple_e[2] = 'Python'
print(tuple_e[1])

#6.可以修改元组内list的内容(包括,修改,增加,删除)
tuple_f = (1, 2.1 , '韩顺平教育',["jack" , "tom" , "mary"])
#访问元组中list及其元素
print(tuple_f[3])
print(tuple_f[3][0])
#修改
tuple_f[3][0] = 'hsp'
print(f"tuple_f内容是{tuple_f}")
#删除
del tuple_f[3][0]
print(f"tuple_f内容是{tuple_f}")
#增加
tuple_f[3].append("smith")
tuple_f[3].extend(["liu" , "dehua"])
print(f"tuple_f内容是{tuple_f}")

#7.索引也可以从尾部开始,最后一个元素的索引为-1,往前一位为-2,以此类推
print(tuple_f[3][-1])

#8.定义只有一个元素的元组,需要带上逗号
tuple_h = (100,)
print(tuple_h , "--" , type(tuple_h))




